In computer related technologies, certain applications such as reports are generated to obtain information on various aspects. For example, in a social networking environment reports may be generated for obtaining information such as the list of users who visited a particular website over a predefined period, number of comments made by users in the last hour, etc. The information presented in the reports is retrieved from a database. Obtaining results from the database every time a report is generated consumes significant computing resources and causes a significant delay.
Further, processing the data retrieved from the database to a form as required by the report incurs additional computing resources further delaying the generation of the report. If the reports are generated often and at regular intervals, such delays may affect the user experience. Some caching techniques have been suggested to cache frequently retrieved data. The prior caching techniques are not efficient in terms of managing the cache. For example, the prior caching techniques are not efficient in determining the kind of data to be cached, amount of data to be cached, a duration for which the data has to be cached, determining a portion of data that has to be purged, etc.
While the prior caching techniques address loading data that is retrieved frequently, they are inefficient in preloading data for anticipated queries. Further, the prior caching techniques are not efficient in managing time series data.